const path = require('path')
const resolve = (dir) => path.join(__dirname, dir);
const CompressionWebpackPlugin = require('compression-webpack-plugin');
// const target = 'http://www.tlkjjt.com'//线上地址
const target = 'http://121.40.219.143:7130'// 线上地址2
// const target = 'http://192.168.10.149:7130'//本地地址
module.exports = {
    publicPath: './',
    lintOnSave: false,
    productionSourceMap: false,
    devServer: {
        open: false, //是否自动弹出浏览器页面
        // host: 'localhost',  //运行时地址
        port: 7654,  //运行端口号
        https: false, //是否使用https协议
        hotOnly: false,   //是否开启热更新
        // 本地跨域代理
        proxy: {
            '/electronicSeal': {
                target,  //请求后端地址
                changeOrigin: true,
                pathRewrite: {
                    '^/electronicSeal': '/v1',//本地
                }
            }
        },
        disableHostCheck: true,//关闭host检查
    },

    configureWebpack: {
        //Debug
        devtool: 'source-map',
        // 添加别名
        resolve: {
            alias: {
                '@': resolve('src')
            }
        },
        plugins: [
            new CompressionWebpackPlugin({
                // [file] 会被替换成原始资源。[path] 会被替换成原始资源的路径，[query] 会被替换成查询字符串
                filename: '[path][base].gz',
                // 压缩成gzip
                algorithm: 'gzip',
                // 使用正则给匹配到的文件做压缩，这里是给html、css、js以及字体做压缩
                test: /\.js$|\.css$|\.html$|\.ttf$|\.eot$|\.woff$/,
                // 只有大小大于该值的资源会被处理。单位是 bytes。默认值是 0。
                threshold: 10240,
                // 只有压缩率小于这个值的资源才会被处理。默认值是 0.8。
                minRatio: 0.8
            })
        ]
    },
    // /** Webpack配置 */
    chainWebpack: config => {
        // set svg-sprite-loader
        config.module
            .rule('svg')
            .exclude.add(resolve('src/assets/icons'))
            .end()
        config.module
            .rule('icons')
            .test(/\.svg$/)
            .include.add(resolve('src/assets/icons'))
            .end()
            .use('svg-sprite-loader')
            .loader('svg-sprite-loader')
            .options({
                symbolId: 'icon-[name]'
            })
            .end()
    },
    css: {
        loaderOptions: { // 向 CSS 相关的 loader 传递选项
            less: {
                javascriptEnabled: true
            }
        }
    },
    pluginOptions: {
        'style-resources-loader': {
            preProcessor: 'less',
            patterns: [path.resolve(__dirname, './src/assets/style/variables.less')] // 引入全局样式变量
        }
    }
}
